Traditional desktop computers are located at a single physical place for long periods of time, if not indefinitely. This means that once the computers have had their network connectivity configured, the network connectivity does not typically have to be altered for a long time, and usually not on a daily basis, for instance. Network connectivity is generally defined as the current ability of a computer to connect with one or more different networks. Network connectivity usually needs the presence of network components, such as wired or wireless modems, network adapters, and so on, and the configuration of these components so that they can communicate with one or more networks.
Network connectivity is typically established consistent with one or both of a hardware profile and a network profile. A hardware profile is generally defined as the settings that govern a specific configuration of peripherals and drivers of a computer. Multiple profiles allow a user set up more than one hardware configuration. A driver, or a device driver, is generally and non-restrictively defined as a program routine that links a peripheral device to the operating system. It is typically written by programmers who understand the detailed knowledge of the device's command language and characteristics and contains the precise machine language necessary to perform the functions requested by the application. Network device drivers are drivers for network devices, or components.
A network profile is generally defined as the networking-specific parts of a user profile, and/or the specific network configuration settings needed to achieve desired network connectivity. A user profile describes the system configuration for a specific user, including the user's environment and preference settings. For example, settings and configuration options specific to the user, such as installed application, desktop icons, color options, and so on, can be contained in a user profile. Aspects of the user profile specific to networking may be referred to as a network profile, which are the configuration settings needed to achieve desired network connectivity. These settings may include, for example, the user's network name, the type of network connection, network parameters needed to log into a specific network(s), and so on.
Most operating systems, such as versions of the MICROSOFT WINDOWS operating system, establish network connectivity while the computer is being started. Along with other boot sequence operations, such as the detection of hardware, the self-testing of the computer, and so on, network connectivity is established consistent with the configuration that has been earlier specified. When the user is requested by the system to log-in, by entering a user name and optionally a password, network connectivity has already been established. Again, for desktop computers that are typically located in a single place and consistently connected to the same network, this is a logical choice for when to establish network connectivity.
However, laptop computers have more recently become exceedingly popular. Laptop computers allow their users to transport them from work to home and back again, and also to transport them while traveling. At each different location, a user may need different network connectivity. For example, when the user is at work, he or she typically connects via a network adapter to the corporate network, but when the user is at home, he or she may instead connect via a modem to the Internet, through an Internet service provider (ISP). However, by the time the user is asked by the system to log-in, network connectivity has already been established, such that the user has no option to specify different network connectivity for that computing session. When the user is at home, for instance, and the computer's network connectivity is configured for work, the system may attempt to connect with the corporate network through the network adapter, and will be unable to do so.
The traditional solution to this problem has been for the user to boot up his computer with the incorrect network connectivity established, manually change the configuration of the network connectivity for the next time the computer is turned on, and restart the computer to establish the new network connectivity. The start-up and shutdown processes of many computer systems are very long, and can each easily exceed a number of minutes. Therefore, this traditional solution is inconvenient for the user who has to have different network connectivity at different times for his or her computer system.
Another prior art approach to mitigating this problem is a shutdown tool that some utility programs have that requests the user to specify the network connectivity that should be established the next time the computer is turned on. For example, if the user is shutting down for the day at work, and plans to next use the computer at home, he or she would specify just before the computer shuts down that home network connectivity should be established the next time the computer is turned on. However, this solution requires the user to know the type of network connectivity that needs to be established the next time he or she uses the computer, which is not always possible.
For example, the user may specify that home network connectivity be established the next time the computer is turned on, but then may have forgotten to send an email at work before leaving for the day. The user thus turns the computer back on, which tries to establish network connectivity for home, not for work. The user must again shutdown, this time specifying that work network connectivity be established the next time the computer is turned on, and again restart the system. For the user wanting to use the computer at work again for only a few minutes to send one more email, this is an inconvenient and lengthy process to follow.
For these and other reasons, therefore, there is a need for the present invention.